package com.sky.service;

import com.sky.dto.*;
import com.sky.result.PageResult;
import com.sky.vo.*;

import java.time.LocalDate;

/**
 * @author: 夏帮连
 * @date: 2025/06/25
 * @description:
 * @version: 1.0
 */
public interface OrdersService {
    OrderSubmitVO submit(OrdersSubmitDTO ordersSubmitDTO);

    OrderPaymentVO payment(OrdersPaymentDTO ordersPaymentDTO);

    void reminder(Long id);

    void repetition(Long id);

    PageResult pageQueryByUser(OrdersPageQueryDTO ordersPageQueryDTO);

    void cancel(Long id);
    void cancel(OrdersCancelDTO ordersCancelDTO);

    OrderVO orderDetail(Long id);

    OrderStatisticsVO statistics();

    void complete(Long id);

    void reject(OrdersRejectionDTO ordersRejectionDTO);

    void confirm(OrdersConfirmDTO ordersConfirmDTO);

    void delivery(Long id);

    PageResult conditionSearch(OrdersPageQueryDTO ordersPageQueryDTO);

    OrderReportVO ordersStatistics(LocalDate begin, LocalDate end);

    TurnoverReportVO turnoverStatistics(LocalDate begin, LocalDate end);

    SalesTop10ReportVO salesTop10(LocalDate begin, LocalDate end);

    BusinessDataVO getBusinessData();

    SetmealOverViewVO getOverviewSetmeals();

    DishOverViewVO getOverviewDishes();

    OrderOverViewVO getOverviewOrders();
}
